/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modele;

import java.awt.Color;

/**
 *
 * @author steven
 */
public class Port implements java.io.Serializable {

    public static final int UNDEFINED = 0;
    public static final int OUVERT = 1;
    public static final int FERME = 2;
    public static final int OUVERT_OU_FILTRE = 3;
    private int numPort;
    /**
     * TCP ou UDP
     */
    private String protocole;
    /**
     * 1 -> le port est ouvert 2 -> le port est ferme 3 -> le port est ouvert ou
     * filtre
     */
    private int statut;

    public Port(int numPort, String typePort) {
        this.numPort = numPort;
        this.protocole = typePort;
        this.statut = UNDEFINED;
    }

    public int getNumPort() {
        return numPort;
    }

    public String getProtocole() {
        return protocole;
    }

    public boolean isTCP() {
        return protocole.equalsIgnoreCase("TCP");
    }

    public boolean isUDP() {
        return protocole.equalsIgnoreCase("UDP");
    }

    public int getStatut() {
        return statut;
    }

    public void setStatut(int statut) {
        this.statut = statut;
    }

    public Color getColor() {
        switch (statut) {
            case OUVERT:
                return Color.GREEN;
            case FERME:
                return Color.RED;
            case OUVERT_OU_FILTRE:
                return Color.YELLOW;
            default:
                return Color.BLACK;
        }
    }

    @Override
    public String toString() {
        switch (statut) {
            case OUVERT:
                return "Le port " + numPort + " est ouvert";
            case FERME:
                return "Le port " + numPort + " est ferme";
            case OUVERT_OU_FILTRE:
                return "Le port " + numPort + " est ouvert ou filtre";
            default:
                return "Le port n'a pas été scanné";
        }
    }
}
